package com.gitee.chippyer.logger.compontents;

import com.gitee.chippyer.logger.utils.LogUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;

import java.util.Date;

/**
 * 通用组件实现
 *
 * @author: chippy
 **/
@Slf4j
public class LogRepositoryCommonComponent {

    public void validateStartEndDateTimeNotNull(Date startDateTime, Date endDateTime) {
        if (ObjectUtils.isEmpty(startDateTime) || ObjectUtils.isEmpty(endDateTime)) {
            LogUtil.error(log, "待校验开始时间结束时间均不能为空");
            throw new IllegalArgumentException("待校验开始时间结束时间均不能为空");
        }

        if (endDateTime.getTime() <= startDateTime.getTime()) {
            LogUtil.error(log, "结束时间不能小于开始时间");
            throw new IllegalArgumentException("结束时间不能小于开始时间");
        }
    }

    public void validatePageParam(Integer pageNum, Integer pageSize) {
        if (ObjectUtils.isEmpty(pageNum) || pageNum <= 0) {
            throw new IllegalArgumentException("页码必须不为空并且大于0");
        }

        if (ObjectUtils.isEmpty(pageSize) || pageSize <= 0) {
            throw new IllegalArgumentException("分页每页展示数量必须不为空并且大于0");
        }
    }

    public void validateStartEndTime(Date startDateTime, Date endDateTime) {
        if (ObjectUtils.isEmpty(startDateTime) || ObjectUtils.isEmpty(endDateTime)) {
            LogUtil.error(log, "待校验开始时间结束时间均不能为空");
            throw new IllegalArgumentException("待校验开始时间结束时间均不能为空");
        }

        if (endDateTime.getTime() <= startDateTime.getTime()) {
            LogUtil.error(log, "结束时间不能小于开始时间");
            throw new IllegalArgumentException("结束时间不能小于开始时间");
        }
    }

}
